Job management apparatus and method of recognizing job completion, and control program used therewith

ABSTRACT

A method for managing a job sent from an information processing apparatus to a network device to process the job. The method includes managing job information representing status of the job processing which changes in a time series manner, deleting the job information after lapse of a predetermined time after completing the job processing by the network device, acquiring the managed job information, recognizing whether or not the job information has already been deleted, and recognizing that the job processing is completed responsive to one of recognizing that the job information has already been deleted and acquiring the job information that the job processing is completed.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a job management apparatus and methodfor managing a job which is processed in a peripheral apparatus, and toa control program used therewith.

2. Description of the Related Art

In general, there are two methods for managing jobs in a network device.One uses the job MIB (Management Information Base) protocol in whichSNMP/MIB (Simple Network Management Protocol/MIB) control is used, andthe other one uses the IPP (Internet Printing Protocol). These protocolsenable display of a list of jobs in a network device, control of jobs(e.g., job suspension and job deletion), etc.

In addition, an event is used in order to monitor a change in the statusof a job for printing. When the status of the job changes, this event isreported from the network device to a job management apparatus.

Regarding the case of reporting the end of a job in which printing isperformed by a user, there is a method in which a job managementapparatus displays a dialog box or the like by using a job-status-changeevent received from a network device.

There is also a method in which a job end is determined by performingpolling to periodically acquire a list of jobs and a correspondingmessage is displayed for the user. However, in the above methods of therelated art, on a network based on a WAN (wide area network) environmentor in an environment in which a network traffic increases, a clientapplication fails to detect a job-status-change event representing theend of a print job, so that the user is unable to accurately know theend of printing. Also, in an environment in which, even if a printer,which is an example of a peripheral apparatus, reports a job-statuschange on a timely basis, it is not ensured that the job-status changeis reported to a client, a problem occurs in that the job status cannotbe accurately found in real time.

In addition, since, in a high speed printer, a print job finishes in ashort time, it is difficult for a client application to perform pollingto monitor a job. Therefore, it is impossible to report a printing endto a user.

SUMMARY OF THE INVENTION

The present invention is directed to a job management method and anetwork device.

According to an aspect of the present invention, a method for managing ajob sent from an information processing apparatus to a network devicecoupled thereto to process the job, includes the following steps: amanaging step of managing job information representing status of the jobprocessing by the network device which changes in a time series manner;a deleting step of deleting the job information after lapse of apredetermined time after completing the job processing by the networkdevice; an acquiring step of acquiring the job information managed inthe managing step; a recognizing step of recognizing whether or not thejob information has already been deleted; and a job-completionrecognizing step of recognizing that the job processing is completedresponsive to at least one of recognizing in the recognizing step thatthe job information has already been deleted, and acquiring in theacquiring step the job information representing that the job processingis completed.

In another aspect, a method for managing, in an information processingapparatus, a job sent to a network device to be processed and thendeleted after completion of the processing and lapse of a sustenanceperiod, the method includes the following steps: a tracing step oftracing the job in the network device; and a polling step of polling forinformation regarding a status of the processing of the job by thenetwork device. In yet another aspect, a program stored in memory andexecutable by an information processing apparatus to perform the justdescribed method and system used in the above job management apparatusare provided. In addition, a program used therewith is provided.

In yet still another aspect, a network device operable to process a jobfrom an information processing apparatus coupled thereto, includes: afirst receiving unit configured to receive the job sent from theinformation processing apparatus; a processing unit configured toprocess the job; a deleting unit configured to delete the job after theprocessing unit completes processing the job and after a predeterminedperiod; a maintaining unit maintaining job information; a secondreceiving unit configured to receive requests for job information fromthe information processing apparatus; and a reporting unit reporting thejob information responsive to the second receiving unit receiving therequests for job information. Further features and advantages of thepresent invention will become apparent from the following description ofthe exemplary embodiments with reference to the attached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of the specification, illustrate exemplary embodiments of theinvention and, together with the description, serve to explain theprinciples of the invention.

FIG. 1 is a block diagram showing an example of a job management systemof the present invention.

FIG. 2 is a block diagram showing an example of a job management systemconfiguration including the PC and printer shown in FIG. 1.

FIG. 3 is an illustration of an example of a screen displayed on the CRTshown in FIG. 1 by the UI process shown in FIG. 2.

FIG. 4 is a flowchart showing an example of an event registrationprocess of the UI process shown in FIG. 2.

FIG. 5 is a flowchart showing an example of a job transmitting processof the printer driver shown in FIG. 2.

FIG. 6 is a flowchart showing an example of a job change in the printer.

FIG. 7 is a flowchart showing an example of a job monitoring process.

FIG. 8 is a flowchart showing another example of the job monitoringprocess.

FIG. 9 is a block diagram showing the hardware configuration of theprinter shown in FIG. 1.

DESCRIPTION OF THE EMBODIMENTS

Embodiments of the present invention will now be described in detail inaccordance with the accompanying drawings.

FIG. 1 shows an example of a job management system of the presentinvention.

The job management system of the present invention is realized in thepersonal computer (PC) 200, serving as an information processingapparatus, shown in FIG. 1. A hard disk (HD) 211 stores programsconstituting network job management software according to the presentinvention which is an operating subject in the following description. Inthe following descriptions, an executing subject is a central processingunit (CPU) 201 unless otherwise noted. In addition, a controllingsubject on the software is the network job management software stored inthe HD 211. In this embodiment, it is assumed that an operating systemis, for example, Microsoft Windows 2000. However, the OS is not limitedthereto.

Referring to FIG. 1, in the PC 200, a job management program isexecuted. The PC 200 includes the CPU 201 that executes the jobmanagement program, which is stored in the HD 211 or supplied from adisk controller (FD) 212. The PC 200 overall controls devices connectedto a system bus 204.

A random access memory (RAM) 203 functions as a main memory or work areafor the CPU 201. A keyboard controller (KBC) 205 controls instructiveinputs from a keyboard (KB) 209 or a pointing device (not shown). A CRTcontroller (CRTC) 206 controls a display (CRT) 210 to display an image.A disk controller (DKC) 207 controls accessing of the hard disk 211 andthe floppy disk 212, which stores a boot program, various applications,editing files, user files, the network management program, etc. Anetwork interface card (NIC) 208 uses a local area network (LAN) 100 tobidirectionally transmit and receive data between an agent and a networkdevice.

The network management program may be provided in a form stored in afloppy disk or CD-ROM. In this case, the program is read from a storagemedium by the disk controller 212 or a CD-ROM drive (not shown), and isinstalled in the hard disk 211.

The job management program according to the present invention may beprovided in a form stored in a storage medium such as a floppy disk orCD-ROM. In this case, the program is read from the storage medium by thedisk controller 212 or the CD-ROM drive (not shown), and is installed inthe hard disk 211. A multifunction machine 305 is an example of aperipheral apparatus including an image forming apparatus, and anotherperipheral apparatus is a printer 304. These peripheral apparatuses areconnected to the PC 200, which is an example of a job managingapparatus, through the LAN 100, which is an example of a network.

FIG. 2 is a block diagram showing an example of a job management systemconfiguration including the PC 200 and the printer 304 shown in FIG. 1.FIG. 2 shows the insides of the PC 200 and the printer 304. A printingapplication 301 uses a printer driver 302 to perform rasterization on aprint job 307. At this time, the printer driver 302 adds a client job IDfor identifying a client that issued the print job, and a sustenanceperiod in which the print job is sustained after printing finishes.Although the printer driver 302 is used in this embodiment, it can bereplaced by a facsimile driver. The print job 307 is transmitted to aspooler 303 in response to a GDI call. The spooler 303 transfers theprint job 307 to the printer 304 by using, for example, the LPRprotocol. As shown in FIG. 2, the printer 304 spools the print job 307.At this time, the printer 304 adds a device job ID to the print job 307and changes the status of the print job 307 to a printing awaitingstatus (Ready). Subsequently, after printing is performed and a printedsheet is outputted, the status of the print job 307 is changed to aprinting completion status (Completed). After that, the print job 307 issustained in the printer 304 for the sustenance period, that is, xseconds in FIG. 2. Finally, the print job 307 is deleted in a memory ofthe printer 304. A UI (user interface) process 305 and a job monitoringprocess 306 are parts of the job management program. Both processes arestored in the hard disk 211 shown in FIG. 1 and are called and executedby the CPU 201. Also, the printing application 301 and the printerdriver 302 are stored in the hard disk 211, and are executed by the CPU201.

The UI process 305 registers a monitoring event in the job monitoringprocess 306 in order to monitor the print job 307. The job monitoringprocess 306 registers a device event in the printer 304 and starts topoll the printer 304 about job information. In order for the jobinformation to be acquired by polling, job acquiring protocols (e.g.,Job MIB using the SNMP protocol, IPP (Internet Printing Protocol),etc.,) are used. Polling for the job information is executed when a jobstart report is received from the printer driver 302. The job monitoringprocess 306 detects and recognizes a job status by acquiring a deviceevent or status change information (which may be referred to as a“status change”), which is an example of job information of the printjob 307 through a device event or polling for job information. The jobmonitoring process 306 reports the recognized job status to the UIprocess 305.

FIG. 3 shows an example of a screen displayed on the CRT 210 shown inFIG. 1 by the UI process 305 shown in FIG. 2. Detailed operations of theUI process 305, the printer driver 302, the printer 304, and the jobmonitoring process 306 are described below by using flowcharts.

The document name shown in FIG. 3 is “TEST PAGE” and its owner is“admin.” The CRT 210 displays the statuses of jobs that processdocuments. The statuses of the three jobs shown in FIG. 3 are displayedas “PROCESSING”, “PRINTED”, and “PRINTED” in the order from the top.These displayed items are each switched from “PROCESSING” to “PRINTED”in such a manner that the UI process 305 and the job monitoring process306 cooperatively operate (described in detail later).

FIG. 4 shows an example of an event process of the UI process 305. Instep S1-1, the UI process 305 registers an event in the job monitoringprocess 306. In step S1-2, it is determined whether or not the event hasbeen received. If the event has not been received yet, the processreturns to step S1-2, and the UI process 305 enters an event-receptionawaiting status. If the event has been received, the process proceeds tostep S1-3. In step S1-3, the UI process 305 displays a message box,changes a job status, including a printed status while the list of jobsshown in FIG. 3 are being processed, and reports the job status changeto a user. In step S1-4, it is determined whether the type of thereported event is a job deletion report. If the type of the reportedevent is not the job deletion report, the process returns to step S1-2and the UI process 305 enters an event-reception awaiting status. If thetype of the reported event is the job deletion report, the registeredevent is cancelled and job tracing is finished.

FIG. 5 shows an example of a job transmitting process of the printerdriver 302 shown in FIG. 2. In step S2-1, a print job is received fromthe printing application 301. In step S2-2, a client job ID, which canbe identified for each client, is assigned to the print job. The clientjob ID is an ID by which a job generated in a distributed client PC canbe uniquely identified. For example, UUID is used. In step S2-3, theclient job ID is reported to the job monitoring process 306. In stepS2-4, an after-printing job-sustenance period set in the printer driver302 beforehand is set in the print job 307. In step S2-5, by performingGDI writing, the print job 307 is transmitted to the spooler 303.

FIG. 6 shows an example of a job change in the printer 304. FIG. 9 is ablock diagram showing the hardware configuration of the printer 304.

The hardware configuration shown in FIG. 9 is a printer control system.The printer 304 includes a host computer interface unit 1002, a CPU1003, a ROM 1004, a RAM 1005, a paper feeding mechanism unit 1006, animage output unit 1007, and a bus 1008. The host computer 200 shown inFIG. 9 is the PC 200 that is an example of the job management apparatusconnected to the printer 304 in a form capable of data communication.Obviously, the host computer 200 may be directly connected or built intoan MFP (multifunction peripheral) or the like (not shown).

Specifically, the PC 200 creates a document and transmits a documentprinting request to the printer 304. In the printer 304, the hostcomputer interface unit 1002 is formed as a serial interface circuit, aparallel interface circuit, or a LAN interface circuit. The hostcomputer 200 transmits the document printing request to the CPU 1003.The host computer interface unit 1002 conversely transmits informationof the printer 304 to the host computer 200. The ROM 1004 stores acontrol program for controlling the operation of each unit. The RAM 1005stores a control program, and, in addition, a print image transmittedfrom the host computer to the printer 304.

The image output unit 1007 uses laser beam scanning to form the printimage stored in the RAM 1005 onto a photosensitive drum. The paperfeeding mechanism unit 1006 performs paper feeding by controlling paperfeeding rollers disposed in portions of a paper carrying system inresponse to the formation of the print image on the photosensitive drum.A sheet of paper is carried to a transfer position of the photosensitivedrum, on which the print image is formed, and the formed image istransferred to the sheet, and printing is completed. The CPU 1003controls each of the above components based on the control programstored in the ROM 1004. Based on the control program, the CPU 1003 alsoexecutes the processes indicated by flowcharts described later. The bus1008 connects component units of the printer 304 and is used as acommunication path.

Referring back to FIG. 6, the multifunction machine 220 is similar inconfiguration to the printer 304 shown in FIG. 9 except for a facsimilefunction. The control program stored in the ROM 1004 in FIG. 9 in theprinter 304 in FIG. 2 is executed by the CPU 1003 in the printer 304shown in FIG. 4 (corresponding to the printer 304 shown in FIG. 2). Thisexecutes the following processing. In step S3-1, the printer 304receives the print job 307 from the spooler 303. In step S3-2, a devicejob ID, which is unique in the printer 304 as a device, is assigned. Instep S3-3, the status of the print job is changed to a printing awaitingstatus (Ready). In step S3-4, printing is started. After the printing isstarted, in step S3-5, the status of the print job is changed to aprinting status (Processing). In step S3-6, printing is performed. Instep S3-7, it is determined whether the printing has finished.

When the printing has finished, the process proceeds to step S3-8, andthe status of the print job is changed to a printing completion status(Complete). After the printing is completed, it is determined whether anafter-printing job-sustenance period has elapsed in step S3-9. If theafter-printing job-sustenance period has not elapsed, the processproceeds to step S3-10 and waits for a predetermined period to elapse.After that, the process returns to step S3-9 again. If theafter-printing job-sustenance period has elapsed, in step S3-11, theprint job is deleted. The process is completed in this step S3-11. Theprint job stored in the RAM 1005 shown in FIG. 9, which includesdocument data, print data, and job information, is deleted.

FIG. 7 shows an example of the job monitoring process 306 shown in FIG.2. In step S4-1, a monitoring event to be registered is received fromthe UI process 305. In step S4-2, a device event is registered in theprinter 304. In step S4-3, job monitoring is performed by performingpolling. Details of the job monitoring by performing polling aredescribed with reference to the flowchart shown in FIG. 8. By using, incombination, the device event and the job monitoring by polling, even ifthe device event is not detected, the job status can be reported. Instep S4-4, it is determined whether an instruction of amonitoring-event-registration deletion has been received. If theinstruction of the monitoring-event-registration deletion has not beenreceived, the process proceeds to step S4-5 and it is determined whethera device event has been received. If the device event has not beenreceived, the process returns to step S4-4, and the job monitoringprocess 306 enters a device event awaiting status. If the device eventhas been received, the process proceeds to step S4-6, the received eventis converted to a monitoring event and the monitoring event is reportedto the UI process 305. After that, the process returns to step S4-4, andthe job monitoring process 306 enters an event awaiting status. If theinstruction of the monitoring-event-registration deletion has beenreceived, in step S4-7, the registered device event is deleted in theprinter 304, and, in step S4-8, the job monitoring by polling finishes.

FIG. 8 shows an example of the job monitoring process 306 shown in FIG.2. In other words, FIG. 8 is a flowchart showing job monitoring bypolling which is performed by the job monitoring process 306. Prior tothe job monitoring by polling, it is assumed that the monitoring eventhas been registered by the UI process 305. In step S5-1, the client jobID is received from the printer driver 302. Since the client job ID ofthe print job 307, which is to be monitored, is reported, in step S5-2,a list of jobs is acquired from the printer 304 and polling is started.In step S5-3, it is determined whether the acquired list of jobsincludes the client job ID of the print job 307, which is to bemonitored. If the client job ID of the print job 307 is not included, instep S5-4, the process waits for a predetermined period to elapse, andreturns to step S5-2 again. If the client job ID of the print job 307 isincluded, the process proceeds to step S5-5, and a job status changeindicating that a job has been input is reported to the UI process 305.Since it is recognized that the print job 307 is stored in the printer304, only the print job 307 is monitored by using the device ID afterstep S5-5. In step S5-6, the status of the print job 307 is acquired,and polling is started for a job status included in the print job 307.In step S5-7, it is determined whether the job status of the print job307, which is an example of job information, represents completion(indicated by “Complete” in FIG. 8) of printing. If the job status doesnot represent completion of printing, the process proceeds to step S5-8,and waits for a predetermined period to elapse. After that, the processreturns to step S5-6 again. At this time, the UI process 305 displays,on the CRT 210, “PROCESSING” that represents printing or image formingprocessing as shown in FIG. 3. If the job status represents completionof printing, the process proceeds to step S5-9, and reports a job statuschange to the UI process 305. At this time, the UI process 305 switchesthe displayed item on the CRT 210 from “PROCESSING” to “PRINTED” asshown in FIG. 3.

As described above, the PC 200, which is an example of a job managementapparatus communicating with the printer 304, which is an example of anetwork device capable of processing a job subject to image processingand printing, has been described. The job monitoring process 306 hasbeen described in which the PC 200 executes the job management programto manage job information including the status of a job which changes ina time series manner, and after processing on the job is completed and apredetermined time, that is, the time designated by the sustenanceperiod, subsequently elapses, the job information is deleted. The jobmonitoring process 306 acquires job information to be managed by itself.Based on whether the job information can be acquired, the UI process 305recognizes whether the job information (or the job itself), whichincludes a job status, has already been deleted. When the job monitoringprocess 306 recognizes that the job information has already beendeleted, or it is recognized that job information representingcompletion of processing the job is acquired, completion of the jobprocessing is recognized.

In response to a request of the PC 200 for job information from thenetwork device, the printer 304 may transmit the job information and thetransmitted job information may be acquired by the job monitoringprocess 306. In the case of detecting an event in which the networkdevice transmits job information without receiving a request from thejob management apparatus, the job monitoring process 306 may acquire thejob information. When failing to acquire job information, the jobmonitoring process 306 recognizes that the job has already been deletedand further recognizes that the job processing is completed. The jobprocessing may be printing or facsimile processing. The job may be aprint job or a facsimile job. The job monitoring process 306periodically acquires job information. By transmitting a command, thejob monitoring process 306 may set the printer 304 so that, aftercompletion of printing, in a period longer than each of intervals at thejob information is acquired, the job can be stored without beingdeleted.

The job monitoring process 306 may set the printer 304 so that, alsoafter completion of the job, the job information can be acquired by theprinter 304 in a period shorter than a time up to deletion of the job.The UI process 305 is used to control display of a job status on the CRT210 based on the result of recognition of job completion by the jobmonitoring process 306.

The print job 307 is stored in the printer 304 in an after-printingsustenance period even after printing. In step S5-10, the job status ofthe print job 307 is acquired. In step S5-11, it is determined whetherthe print job 307 is or is not included. If the job is included, theprocess proceeds to step S5-12 and waits for a predetermined period toelapse. After that, the process returns to step S5-10. If the job is notincluded, the after-printing job-sustenance period elapses and it isrecognized that the job has been deleted in the printer 304. Thus, instep S5-13, a job status change is reported to the UI process 305. Atthis time, the UI process 305 controls the CRT 210 to display “PRINTED”,which represents a printing-completion status, as shown in FIG. 3.

Accordingly, job monitoring by polling makes it possible to confirmcompletion of printing based on the print job 307 within theafter-printing sustenance period. This ensures that a printing end canbe reported to the user. When a facsimile driver is used instead of theprinter driver 302, facsimile-transmitting-job monitoring by pollingmakes it possible to confirm completion of facsimile transmission basedon a facsimile transmitting job within a job sustenance period afterfacsimile transmission. This ensures that the end of facsimiletransmission can be reported to the user.

Other Embodiments

The processes (in the above embodiment) shown in FIGS. 2, 4, 5, 6, 7,and 8 are executed by apparatuses such as the PC 200, the printer 304,and the multifunction machine 220 in accordance with externallyinstalled programs. In this case, the present invention is applicable toeven a case in which groups of pieces of information including programsare supplied to the PC 200 from a storage medium such as CD-ROM, a flashmemory, or a floppy disk, or from an external storage medium through anetwork.

Obviously, the present invention is also achieved such that a storagemedium (or a recording medium) containing the program code of softwarefor implementing the functions in the above embodiments is provided to asystem or apparatus or is downloaded from an external server (notshown), and a computer (or a CPU/MPU) in the system or apparatus readsand executes the program code stored in the storage medium.

In this case, the program code read from the storage medium, itself,implements the functions in the above embodiments. Accordingly, thestorage medium storing the program code is included in the presentinvention. Storage media for providing the program code include, forexample, a floppy disk, a hard disk, an optical disk, a magneto-opticaldisk, DVD, CD-ROM, a magnetic tap, a nonvolatile memory card, ROM, andEEPROM.

Obviously, the present invention includes not only a case in which thecomputer executes the read program code, whereby the functions in theabove embodiments are implemented, but also a case in which, based oninstructions of the program code, an OS active in the computer performsall or part of actual processing and the processing implements thefunctions in the above embodiments. The present invention also includesa case in which, after program code read from a storage medium iswritten in a memory in an add-in card inserted into a computer or anadd-in unit connected to the computer, based on instructions of theprogram code, a CPU or the like provided in the add-in card or unitperforms all or part of actual processing and the processing implementsthe functions in the above embodiments.

While the present invention has been described with reference to whatare presently considered to be the exemplary embodiments, it is to beunderstood that the invention is not limited to the disclosedembodiments. On the contrary, the invention is intended to cover variousmodifications and equivalent arrangements included within the spirit andscope of the appended claims. The scope of the following claims is to beaccorded the broadest interpretation so as to encompass all suchmodifications and equivalent structures and functions.

This application claims priority from Japanese Patent Application No.2004-015830 filed Jan. 23, 2004, which is hereby incorporated byreference herein.

1. A method for managing a job sent from an information processingapparatus to a network device coupled thereto via a network to processthe job, comprising the following steps: a managing step of managing jobinformation representing status of the job processing by the networkdevice which changes in a time series manner; a deleting step ofdeleting the job information after lapse of a predetermined time aftercompleting the job processing by the network device; an acquiring stepof acquiring the job information managed in the managing step via thenetwork; a recognizing step of recognizing whether or not the jobinformation has already been deleted in a case where the job informationcannot be acquired via the network within the predetermined time; ajob-completion recognizing step of recognizing that the job processingis completed responsive to at least one of recognizing in therecognizing step that the job information has already been deleted, andacquiring in the acquiring step the job information representing thatthe job processing is completed; and a displaying step of displaying ajob completion when the job processing is recognized as being completedin the job-completion recognizing step.
 2. The method according to claim1, further comprising: a requesting step of requesting the jobinformation from the network device; a transmitting step of transmittingfrom the network device the job information requested in the requestingstep; and the acquiring step acquiring the job information transmittedin the transmitting step.
 3. The method according to claim 1, furthercomprising a detecting step of detecting an event from the networkdevice without receiving any requests from the information processingapparatus, and responsive thereto, acquiring the job information in theacquiring step.
 4. The method according to claim 1, wherein: the jobprocessing is one of printing and facsimile processing; the job is oneof a printing job and a facsimile job; the acquiring step includesacquiring the job information periodically; and in a period longer thaneach of intervals at which the job information is acquired in theacquiring step, the managing step includes storing the job without beingdeleted after completing the job processing.
 5. The method according toclaim 1, wherein after the job processing is completed, the acquiringstep includes acquiring the job information to be transmitted to thenetwork device at intervals each shorter than a time required to deletethe job.
 6. The method according to claim 1, further comprising adisplaying step of displaying the status of the job on a display unitbased on the recognition of the recognizing step.
 7. A computer-readablemedium having stored thereon a computer program comprising program codehaving computer-executable instructions for causing a computer toexecute the method according to claim 1.